home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 June: Reference Library / Dev.CD Jun 99 RL Disk 1.toast / What's New / Development Kits / Mac_OS_USB_DDK_v1.2 / Examples / CompositeClassDriver / CompositeClassDriver.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-04-15  |  2.3 KB  |  77 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        CompositeClassDriver.h
  3.  
  4.     Contains:    Header file for Composite Class Driver 
  5.  
  6.     Version:    xxx put version here xxx
  7.  
  8.     Copyright:    © 1997-1999 by Apple Computer, Inc., all rights reserved.
  9.  
  10. */
  11. #ifndef __CompositeCLASSDRIVERH__
  12. #define __CompositeCLASSDRIVERH__
  13.  
  14. #include <Types.h>
  15. #include <Devices.h>
  16. #include <DriverServices.h>
  17. #include <Processes.h>
  18. #include <USB.h>
  19.  
  20. #define     kCompositeDriverName    "\pUSBCompositeDriver"
  21.  
  22. Boolean        immediateError(OSStatus err);
  23. void        CompositeDeviceInitiateTransaction(USBPB *pb);
  24. void        CompositeDeviceCompletionProc(USBPB *pb);
  25. void         InitParamBlock(USBDeviceRef theDeviceRef, USBPB * paramblock);
  26.  
  27. OSStatus    CompositeDriverInitInterface(UInt32 interfaceNum, USBInterfaceDescriptor *interfaceDesc, USBDeviceDescriptor *deviceDesc, USBDeviceRef device);
  28. OSStatus    CompositeDriverNotifyProc(UInt32 notification, void *pointer, UInt32 refcon);
  29. OSStatus    CompositeDriverValidateHW(USBDeviceRef device, USBDeviceDescriptor *desc);
  30. OSStatus    CompositeDriverInitialize(USBDeviceRef device, USBDeviceDescriptorPtr pDesc, UInt32 busPowerAvailable);
  31. OSStatus    CompositeDriverFinalize(USBDeviceRef theDeviceRef, USBDeviceDescriptorPtr pDesc);
  32.  
  33. void        DeviceInitialize(USBDeviceRef device, USBDeviceDescriptorPtr pDeviceDescriptor, UInt32 busPowerAvailable);
  34.  
  35. OSErr        GetInterfaceDescriptor(LogicalAddress pConfigDesc, UInt32 ReqInterface, USBInterfaceDescriptorPtr *hInterfaceDesc);
  36.  
  37. #define     kCompositeRetryCount    5
  38.  
  39. enum driverstates
  40. {
  41.     kUndefined = 0,
  42.     kSetConfig,
  43.     kGetFullConfiguration0,
  44.     kGetFullConfiguration1,
  45.     kNewInterfaceRef,
  46.     kReturnFromDriver =     0x1000,
  47.     kRetryTransaction =     0x2000,
  48.     kSyncTransaction =         0x4000,
  49.     kCompletionPending =     0x8000
  50. };
  51.  
  52. typedef struct
  53. {
  54.     USBPB                             pb;
  55.     void (*handler)(USBPB             *pb);
  56.  
  57.     USBDeviceRef                    deviceRef;
  58.     
  59.     Boolean                            driverRemovalPending;
  60.     Boolean                            expertTerminatePending;        // TCC <USB9>
  61.     
  62.     USBDeviceDescriptor             deviceDescriptor;
  63.     USBConfigurationDescriptor        partialConfigDescriptor;
  64.     USBConfigurationDescriptorPtr     pFullConfigDescriptor;
  65.     
  66.     USBInterfaceDescriptor            interfaceDescriptors[32];
  67.     USBInterfaceRef                    interfaceRefArray[32];
  68.     USBRqIndex                        interfaceCount;
  69.     USBRqIndex                        interfaceIndex;
  70.     
  71.     SInt32                             retryCount;
  72.     SInt32                            delayLevel;
  73.     SInt32                            transDepth;
  74.     UInt32                            busPowerAvailable;
  75. } usbCompositePBStruct;
  76.  
  77. #endif //__CompositeCLASSDRIVERH__